package com.yupi.springbootinit.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yupi.springbootinit.model.entity.User;

import javax.servlet.http.HttpServletRequest;
import java.text.ParseException;
import java.util.Date;

/**
 * 用户服务
 *
 */
public interface UserScoreService extends IService<User> {

    /**
     * 获取当前登录用户
     *
     * @param request
     * @return
     */
    User getScoreByUser(HttpServletRequest request);

    /**
     * 与数据库上次的签到时间比较，判断今日是否已签
     * @param signInTime 上次签到存入数据库的时间
     * @return
     * @throws ParseException
     */
    boolean compareTime(Date signInTime) throws ParseException;

    // 测试用
    User getScoreByUserId(Long id);

    // 扣除积分
    Boolean checkAndDeduct(Long userId, Integer type);

    // 如果执行的是拒绝策略 , 那么退回扣除的积分
    Boolean sendCompensate(Long userId, Integer type);

}
